﻿using CraftParameterConfig.Services.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CraftParameterConfig.Services.Interfaces
{
    public interface IParameterService
    {
        string AddParameter(ParameterAccessDTO parameterAccessDTO,ParameterIndexDTO parameterIndexDTO,ParameterDataDTO parameterDataDTO);
        string AddParameterRange(ParameterAccessDTO parameterAccessDTO, List<ParameterIndexDTO> parameterIndexDTOs, List<ParameterDataDTO> parameterDataDTOs);
        string AddParameterRange(List<ImportDataDTO> importDataDTOs);
        string UpdateData(List<ParameterDataDTO> parameterDataDTOs);
        string AuditData(List<ParameterAccessDTO>  parameterAccessDTOs);
        string AuditData(ParameterAccessDTO parameterAccessDTO);
        void DeleteParameter(ParameterAccessDTO parameterAccessDTO);
        void DeleteParameter(string guidId);
        DataTable GetTableName();
        List<TableIndexDTO> GetTableIndexs(string guidId);
        List<TableDataDTO> GetTableDatas(string guidId);
        List<string> GetParameterAccess( ParameterAccessDTO parameterAccessDTO);
        ParameterAccessDTO GetParameterAccess(string guidId);
        List<ParameterIndexDTO> GetParameterIndexsById(string guidId);
        DataTable GetParameterIndexsByCondition(string guidId, Dictionary<TableIndexDTO, string> keyValuePairs, List<string> indexIds);
        List<ParameterDataDTO> GetParameterDatasById(string guidId);
        bool IsExist(string guidId, Dictionary<TableIndexDTO, string> keyValuePairs, List<string> indexIds);
    }
}
